home *** CD-ROM | disk | FTP | other *** search
- #ifndef _EVQUE_H
- #define _EVQUE_H
-
- #ifndef _SIEV_H
- # include <siev.h>
- #endif
-
- #define EVQUESET_KEY(_ev,_ch,_ec) \
- { if ( (_ev)->bufLen < (_ev)->bufSiz ) \
- { EVQUE_T *_que; \
- _que = &( (_ev)->queBuf[(_ev)->bufPos] ); \
- _que->typ = EVQUE_KEY_ON; \
- _que->clk = clock(); \
- _que->ev.key.ch = (_ch) & 0xFFFF; \
- _que->ev.key.ec = (_ec) & 0xFFFF; \
- (_ev)->bufPos = ((_ev)->bufPos + 1) & ((_ev)->bufSiz-1); \
- ++((_ev)->bufLen); \
- } \
- }
-
- #define EVQUESET_MOS(_ev,_typ,_sw,_x,_y) \
- { if ( (_ev)->bufLen < (_ev)->bufSiz ) \
- { EVQUE_T *_que; \
- _que = &( (_ev)->queBuf[(_ev)->bufPos] ); \
- _que->typ = (_typ); \
- _que->clk = clock(); \
- _que->ev.mos.point.x = (_x); \
- _que->ev.mos.point.y = (_y); \
- _que->ev.mos.sw = (_sw); \
- (_ev)->bufPos = ((_ev)->bufPos + 1) & ((_ev)->bufSiz-1); \
- ++((_ev)->bufLen); \
- } \
- }
-
- #define EVQUE_CHK(_ev) \
- ( (_ev)->quePtr \
- ? ((_ev)->quePtr) \
- : (((_ev)->bufLen > 0 ? &((_ev)->queBuf[(_ev)->readPos]) : NULL)) \
- )
-
- #define EVQUE_NEXT(_ev) \
- { if ( (_ev)->quePtr ) \
- { EVQUE_T *_que; \
- _que = (_ev)->quePtr; \
- (_ev)->quePtr = (_ev)->quePtr->next; \
- SI_FREE(_que); \
- } else \
- { if ( (_ev)->bufLen > 0 ) \
- { (_ev)->readPos = ((_ev)->readPos + 1) & ((_ev)->bufSiz-1); \
- --((_ev)->bufLen); \
- } \
- } \
- }
-
- #define EVQUEUNGET_KEY(_ev,_ch,_ec) \
- { EVQUE_T _que; \
- _que.typ = EVQUE_KEY_ON; \
- _que.clk = clock(); \
- _que.ev.key.ch = (_ch) & 0xFFFF; \
- _que.ev.key.ec = (_ec) & 0xFFFF; \
- EV_ungetQue( &_que ); \
- }
-
- #define EVQUEUNGET_MOS(_ev,_typ,_sw,_x,_y) \
- { EVQUE_T _que; \
- _que.typ = (_typ); \
- _que.clk = clock(); \
- _que.ev.mos.point.x = (_x); \
- _que.ev.mos.point.y = (_y); \
- _que.ev.mos.sw = (_sw); \
- EV_ungetQue( &_que ); \
- }
-
-
- #endif
-